class Solution {
public:

    bool IsContinuous(vector<int>& numbers) {

        int cnt0 = 0;
        int a[20] = { 0 };

        for (int i = 0; i <= 20; i++)
            a[i] = 0;


        for (int i = 0; i < numbers.size(); i++) {
            int x = numbers[i];

            if (x < 0 || x > 13)
                return false;

            a[x]++;

            if (a[x] > 1 && x != 0)
                return false;

            if (x == 0)
                cnt0++;
        }

        if (cnt0 == 5)
            return false;

        int k = -1;
        for (int i = 1; i <= 13; i++) {
            if (a[i] > 0) {
                k = i;
                break;
            }
        }

        for (int i = k; i <= 13; i++) {
            if (a[i] == 0 && cnt0 > 0) {
                a[i] = 1;
                cnt0--;
            }
        }

        int cnt_flag = 5;
        for (int i = k; i < k + 5; i++) {
            cnt_flag--;
            if (a[i] == 0 && i < 14)
                return false;
        }



        return true;

    }
};